/**************************************************************************
 *  创建者：        hualei
 *  开始时间：   2018.06.23
 *  copyright:  (C) 深圳市华友高科有限公司
 *  修改说明：  (每次有修改就添加一条，带有 修改人，修改时间，修改描述)
 *
 ***************************************************************************
 *   MOVE_MAG 磁导航指令属性编辑视窗
 *
 ***************************************************************************/
#ifndef MOVEMAGINSTRUCTIONVIEW_H
#define MOVEMAGINSTRUCTIONVIEW_H

#include <QObject>
#include <QWidget>
#include "movemaginstructionview_global.h"
#include <QTranslator>
#include "instructionEnum.h"

//前置声明程序编辑主视图类
class ProgramView;

namespace Ui {
class MoveMagInstructionView;
}

/**
 * @brief The EM_MOVE_MAG_STOP_TYPE enum    磁条导航停止类型
 */
//enum EM_MOVE_MAG_STOP_TYPE
//{
//    E_MOVE_MAG_NO_STOP,             // 不停止
//    E_MOVE_MAG_RFID_STOP,           // RFID 停止
//    E_MOVE_MAG_MAG_WIDTH_STOP,      // 磁条宽度停止
//    E_MOVE_MAG_INPUT_STOP           // 开关量停止

//};

/**
 * @brief The MoveMagInstructionView class  MOVE_MAG 磁导航指令属性编辑视窗
 */
class MOVEMAGINSTRUCTIONVIEWSHARED_EXPORT MoveMagInstructionView : public QWidget
{
    Q_OBJECT
public:
    /**
     * @brief MoveMagInstructionView    构造函数
     * @param parent
     */
    MoveMagInstructionView(int styleId,QWidget *parent = 0);

    /**
     * @brief updateView        更新界面显示内容
     */
    void updateView();

    /**
     * @brief getInput          或许界面输入内容
     */
    void getInput();

    /**
     * @brief changeLanguage    翻译
     * @param language
     */
    void changeLanguage(int language);

    void initialDisplayStyle(int styleId);

private slots:

    /**
     * @brief on_save_Btn_clicked       指令属性编辑保存槽函数
     */
    void on_save_Btn_clicked();

    /**
     * @brief on_forward_Btn_clicked    上一页槽函数
     */
    void on_forward_Btn_clicked();

    /**
     * @brief on_clearNote_Btn_clicked      清除注释槽函数
     */
    void on_clearNote_Btn_clicked();

    /**
     * @brief on_VelocityRatio_slider_valueChanged      速度比滑块数值改变触发槽函数
     * @param value
     */
    void on_VelocityRatio_slider_valueChanged(int value);

    /**
     * @brief on_VelocityRatio_slider_sliderMoved       速度比滑块位置改变触发槽函数
     * @param position
     */
    void on_VelocityRatio_slider_sliderMoved(int position);

    /**
     * @brief on_VelocityRatio_LineEdit_textEdited     速度比输入触发槽函数1
     * @param arg1
     */
    void on_VelocityRatio_LineEdit_textEdited(const QString &arg1);

    /**
     * @brief on_No_Stop_radioButton_clicked            选择不停止响应槽函数
     */
    void on_No_Stop_radioButton_clicked();

    /**
     * @brief on_RFID_Stop_radioButton_clicked          选择RFID停止响应槽函数
     */
    void on_RFID_Stop_radioButton_clicked();

    /**
     * @brief on_MagWidth_Stop_radioButton_clicked      选择磁条宽度停止响应槽函数
     */
    void on_MagWidth_Stop_radioButton_clicked();

    /**
     * @brief on_Input_Stop_radioButton_clicked         选择开关量停止响应槽函数
     */
    void on_Input_Stop_radioButton_clicked();

signals:

    /**
     * @brief saveInstruction           保存完成编辑的指令属性
     * @param instruction
     */
    void saveInstruction(QString instruction);

    /**
     * @brief finishEditInstruction     完成指令编辑
     */
    void finishEditInstruction();

    /**
     * @brief cleanNote                 清除注释
     */
    void cleanNote();

public:
    ProgramView *programView;
    /**
     * @brief instruction       指令
     */
    QString instruction;

    /**
     * @brief leftMiddleRight   转向方向：　0-LEFT  1-MIDDLE  2-RIGHT
     */
    int leftMiddleRight;

    /**
     * @brief frontBack         运行方向:  0-FRONT   1-BACK
     */
    int frontBack;

    /**
     * @brief rfidValue         RFID标签数据
     */
    QString rfidValue;

    /**
     * @brief velocityRatio     运行速度比
     */
    int velocityRatio;

    /**
     * @brief annotation       　注释
     */
    QString annotationStr;

    /**
     * @brief stopType          停止类型
     */
    E_MOVE_MAG_STOP_TYPE stopType;

    /**
     * @brief stopInputNum      停止开关量
     */
    int stopInputNum;

private:
    Ui::MoveMagInstructionView *ui;

    /**
     * @brief translator        翻译
     */
    QTranslator translator;

};

#endif // MOVEMAGINSTRUCTIONVIEW_H
